package top.chmin.project.cloud.common.entity.column.relation.auto;

// field import auto
// #bind.field.id#

import top.chmin.project.cloud.common.entity.*;

/**
 * chmin
 * 2023-12-27 15:15:42
 * cloud-builder
 */
public class EntityColumnRelationFPC extends PreCondition {

    public EntityColumnRelationFPC() {
    }

    public EntityColumnRelationFPC(EntityColumnRelationFPC parent) {
        super(parent);
    }

    public EntityColumnRelationFPC forDelete() {
        type = "DELETE";
        return this;
    }

    public EntityColumnRelationFPC forCount() {
        type = "COUNT";
        return this;
    }

    public EntityColumnRelationFPC forDistinct() {
        type = "DISTINCT";
        return this;
    }

    public EntityColumnRelationFPC limit(int limit) {
        super.limit = limit;
        return this;
    }

    public EntityColumnRelationFPC sub() {
        return new EntityColumnRelationFPC(this);
    }

    public EntityColumnRelationFPC complete(boolean and) {
        finish(and);
        return parent == null ? this : (EntityColumnRelationFPC) parent;
    }

    public Condition toCondition() {
        return toCondition(EntityColumnRelation.class, "bs_entity_column_relation");
    }

    // field fpc auto
// #bind.field.id#
    public Id id() {
        return new Id();
    }

    // #bind.field.createBy#
    public CreateBy createBy() {
        return new CreateBy();
    }
// $bind.field.id$

    // #bind.field.updateBy#
    public UpdateBy updateBy() {
        return new UpdateBy();
    }

    // #bind.field.createTime#
    public CreateTime createTime() {
        return new CreateTime();
    }
// $bind.field.createBy$

    // #bind.field.updateTime#
    public UpdateTime updateTime() {
        return new UpdateTime();
    }

    // #bind.field.sourceFieldCode#
    public SourceFieldCode sourceFieldCode() {
        return new SourceFieldCode();
    }
// $bind.field.updateBy$

    // #bind.field.targetFieldCode#
    public TargetFieldCode targetFieldCode() {
        return new TargetFieldCode();
    }

    // #bind.field.sourceTableCode#
    public SourceTableCode sourceTableCode() {
        return new SourceTableCode();
    }
// $bind.field.createTime$

    // #bind.field.targetTableCode#
    public TargetTableCode targetTableCode() {
        return new TargetTableCode();
    }

    public class Id extends LongFPCField<EntityColumnRelationFPC> {
        private Id() {
            super(EntityColumnRelationFPC.this, "id");
        }
    }
// $bind.field.updateTime$

    public class CreateBy extends StringFPCField<EntityColumnRelationFPC> {
        private CreateBy() {
            super(EntityColumnRelationFPC.this, "create_by");
        }
    }

    public class UpdateBy extends StringFPCField<EntityColumnRelationFPC> {
        private UpdateBy() {
            super(EntityColumnRelationFPC.this, "update_by");
        }
    }
// $bind.field.sourceFieldCode$

    public class CreateTime extends LocalDateTimeFPCField<EntityColumnRelationFPC> {
        private CreateTime() {
            super(EntityColumnRelationFPC.this, "create_time");
        }
    }

    public class UpdateTime extends LocalDateTimeFPCField<EntityColumnRelationFPC> {
        private UpdateTime() {
            super(EntityColumnRelationFPC.this, "update_time");
        }
    }
// $bind.field.targetFieldCode$

    public class SourceFieldCode extends StringFPCField<EntityColumnRelationFPC> {
        private SourceFieldCode() {
            super(EntityColumnRelationFPC.this, "source_field_code");
        }
    }

    public class TargetFieldCode extends StringFPCField<EntityColumnRelationFPC> {
        private TargetFieldCode() {
            super(EntityColumnRelationFPC.this, "target_field_code");
        }
    }
// $bind.field.sourceTableCode$

    public class SourceTableCode extends StringFPCField<EntityColumnRelationFPC> {
        private SourceTableCode() {
            super(EntityColumnRelationFPC.this, "source_table_code");
        }
    }

    public class TargetTableCode extends StringFPCField<EntityColumnRelationFPC> {
        private TargetTableCode() {
            super(EntityColumnRelationFPC.this, "target_table_code");
        }
    }
// $bind.field.targetTableCode$

}